.\" -*- nroff -*-
.\" Copyright 2006 by Theodore Ts'o.  All Rights Reserved.
.\" This file may be copied under the terms of the GNU Public License.
.\" 
.TH e2fsck.conf 5 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
.SH NAME
e2fsck.conf \- Configuration file for e2fsck
.SH DESCRIPTION
.I e2fsck.conf
is the configuration file for 
.BR e2fsck (8).  
It controls the default behavior of 
.BR e2fsck (8)
while it is checking ext2 or ext3 filesystems.
.PP
The
.I e2fsck.conf
file uses an INI-style format.  Stanzas, or top-level sections, are 
delimited by square braces: [ ].  Within each section, each line 
defines a relation, which assigns tags to values, or to a subsection,
which contains further relations or subsections.   
.\" Tags can be assigned multiple values
An example of the INI-style format used by this configuration file 
follows below:
.P
	[section1]
.br
		tag1 = value_a
.br
		tag1 = value_b
.br
		tag2 = value_c
.P
	[section 2]
.br
		tag3 = {
.br
			subtag1 = subtag_value_a
.br
			subtag1 = subtag_value_b
.br
			subtag2 = subtag_value_c
.br
		}
.br
		tag1 = value_d
.br
		tag2 = value_e
.br
	}
.P
Comments are delimited by a semicolon (';') or a hash ('#') character 
at the beginning of the comment, and are terminated by the end of 
line character.
.P
Tags and values must be quoted using double quotes if they contain
spaces.  Within a quoted string, the standard backslash interpretations 
apply: "\en" (for the newline character), 
"\et" (for the tab character), "\eb" (for the backspace character), 
and "\e\e" (for the backslash character).
.P
The following stanzas are used in the 
.I e2fsck.conf
file.  They will be described in more detail in future sections of this
document.
.TP 
.I [options]
This stanza contains general configuration parameters for 
.BR e2fsck 's
behavior.
.TP
.I [problems]
This stanza allows the administrator to reconfigure how e2fsck handles
various filesystem inconsistencies.
.TP
.I [scratch_files]
This stanza controls when e2fsck will attempt to use scratch files to
reduce the need for memory.
.SH THE [options] STANZA
The following relations are defined in the 
.I [options]
stanza.
.TP
.I allow_cancellation
If this relation is set to a boolean value of true, then if the user 
interrupts e2fsck using ^C, and the filesystem is not explicitly flagged
as containing errors, e2fsck will exit with an exit status of 0 instead
of 32.  This setting defaults to false.
.TP
.I accept_time_fudge
Unfortunately, due to Windows' unfortunate design decision
to configure the hardware clock to tick localtime, instead
of the more proper and less error-prone UTC time, many
users end up in the situation where the system clock is
incorrectly set at the time when e2fsck is run.
.IP
Historically this was usually due to some distributions
having buggy init scripts and/or installers that didn't
correctly detect this case and take appropriate
countermeasures.  However, it's still possible, despite the
best efforts of init script and installer authors to not be
able to detect this misconfiguration, usually due to a
buggy or misconfigured virtualization manager or the
installer not having access to a network time server
during the installation process.  So by default, we allow
the superblock times to be fudged by up to 24 hours.
This can be disabled by setting
.I accept_time_fudge
to the
boolean value of false.  This setting defaults to true.
.TP
.I broken_system_clock
The
.BR e2fsck (8)
program has some hueristics that assume that the system clock is
correct.  In addition, many system programs make similar assumptions.
For example, the UUID library depends on time not going backwards in
order for it to be able to make its guarantees about issuing universally
unique ID's.  Systems with broken system clocks, are well, broken.
However, broken system clocks, particularly in embedded systems, do
exist.  If true, e2fsck will not abort a preen check if it detects a
last mounted or last write time in the superblock in the future.  This
setting defaults to false.
.TP
.I clear_test_fs_flag
This boolean relation controls whether or not 
.BR e2fsck (8)
will offer to clear
the test_fs flag if the ext4 filesystem is available on the system.  It
defaults to true.
.TP 
.I defer_check_on_battery
This boolean relation controls whether or not the interval between 
filesystem checks (either based on time or number of mounts) should 
be doubled if the system is running on battery.  This setting defaults to 
true.
.TP
.I indexed_dir_slack_percentage
When
.BR e2fsck (8)
repacks a indexed directory, reserve the specified percentage of
empty space in each leaf nodes so that a few new entries can
be added to the directory without splitting leaf nodes, so that
the average fill ratio of directories can be maintained at a
higher, more efficient level.  This relation defaults to 20
percent.
.SH THE [problems] STANZA
Each tag in the
.I [problems] 
stanza names a problem code specified with a leading "0x" followed by
six hex digits.   
The value of the tag is a subsection where the relations in that
subsection override the default treatment of that particular problem 
code.
.P
Note that inappropriate settings in this stanza may cause 
.B e2fsck
to behave incorrectly, or even crash.  Most system administrators should
not be making changes to this section without referring to source code.
.P
Within each problem code's subsection, the following tags may be used:
.TP
.I description
This relation allows the message which is printed when this filesystem
inconsistency is detected to be overridden.
.TP
.I preen_ok
This boolean relation overrides the default behavior controlling 
whether this filesystem problem should be automatically fixed when
.B e2fsck
is running in preen mode.
.TP
.I no_ok
This boolean relation overrides the default behavior determining
whether or not the filesystem will be marked as inconsistent if the user
declines to fix the reported problem.
.TP
.I no_default
This boolean relation overrides whether the default answer for this 
problem (or question) should be "no".
.TP 
.I preen_nomessage
This boolean relation overrides the default behavior controlling 
whether or not the description for this filesystem problem should
be suppressed when
.B e2fsck
is running in preen mode.
.TP
.I no_nomsg
This boolean relation overrides the default behavior controlling 
whether or not the description for this filesystem problem should
be suppressed when
.B e2fsck
is run with the
.B -n
option.
.SH THE [scratch_files] STANZA
The following relations are defined in the 
.I [scratch_files]
stanza.
.TP
.I directory
If the directory named by this relation exists and is writeable, then
e2fsck will attempt to use this directory to store scratch files instead
of using in-memory data structures.
.TP
.I numdirs_threshold
If this relation is set, then in-memory data structures be used if the
number of directories in the filesystem are fewer than amount specified.
.TP
.I dirinfo
This relation controls whether or not the scratch file directory is used
instead of an in-memory data structure for directory information.  It
defaults to true.
.TP
.I icount
This relation controls whether or not the scratch file directory is used
instead of an in-memory data structure when tracking inode counts.  It
defaults to true.
.SH EXAMPLES
The following recipe will prevent e2fsck from aborting during the boot
process when a filesystem contains orphaned files.  (Of course, this is
not always a good idea, since critical files that are needed for the
security of the system could potentially end up in lost+found, and
starting the system without first having a system administrator check
things out may be dangerous.)
.P
.br
	[problems]
.br
		0x040002 = {
.br
			preen_ok = true
.br
			description = "@u @i %i.  "
.br
		}
.SH FILES
.TP
.I /etc/e2fsck.conf
The configuration file for 
.BR e2fsck (8).
.SH SEE ALSO
.BR e2fsck (8)
